home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / TIMER.H < prev    next >
C/C++ Source or Header  |  2000-01-16  |  665b  |  40 lines

  1. // Time
  2.  
  3. class cTimer
  4. {  
  5.   public:
  6.     cTimer() { t = get(); }
  7.  
  8.     operator int() { return get() < t; }
  9.  
  10.     void operator = (int dt) { t = get() + dt; }
  11.  
  12.     int raw_delta() { int tt = get(), d = tt - t; t = tt; return d; }
  13.     fix delta() { return (fix)raw_delta() / sec; }
  14.  
  15.     void wait() { while (get() < t); }
  16.  
  17.     static void pause();
  18.     static void unpause();
  19.     static void togglepause();
  20.  
  21.     static int is_paused() { return paused; }
  22.  
  23.     static int get() 
  24.     { 
  25.         int t = timeGetTime(); 
  26.         
  27.         if (!paused)
  28.             timer += t - last; 
  29.         
  30.         last = t; 
  31.     
  32.         return timer >> 4;
  33.     }
  34.  
  35.   private:    
  36.     int t;
  37.  
  38.     static int timer, last, paused;    
  39. };
  40.